<?php

require_once(BaseConfig::LoadClass('objeto_base.class.php'        ));
require_once(BaseConfig::LoadClass('filtro.class.php'             ));
require_once(BaseConfig::LoadClass('abc.class.php'                ));
require_once(BaseConfig::LoadClass('plugin_abc.class.php'         ));
require_once(BaseConfig::LoadClass('cotizador_extendido.class.php'));

class Banco extends ObjetoBase {
  var $intIdTipoProducto;
  var $strNombre        ;
  var $strDescripcion   ;
  var $strCodigoTabla   ;
  var $intOrden         ;
  
  function Banco($intIdBanco = 0) {
    $arrMapaDatos = Array();
    
    $arrMapaDatos['id_banco'       ] = Array('NombreVariable' => 'intIdBanco'      , 'TipoVariable' => 'I');
    $arrMapaDatos['nombre'         ] = Array('NombreVariable' => 'strNombre'       , 'TipoVariable' => 'S');
    $arrMapaDatos['plaza'          ] = Array('NombreVariable' => 'intPlaza'        , 'TipoVariable' => 'N');
    $arrMapaDatos['tipo_banco'     ] = Array('NombreVariable' => 'intTipoBanco'    , 'TipoVariable' => 'N');
    $arrMapaDatos['status'         ] = Array('NombreVariable' => 'intStatus'       , 'TipoVariable' => 'N');
    $arrMapaDatos['max_dias_cierre'] = Array('NombreVariable' => 'intMaxDiasCierre', 'TipoVariable' => 'N');
    $arrMapaDatos['desc_corta'     ] = Array('NombreVariable' => 'strDescCorta'    , 'TipoVariable' => 'S');
    $arrMapaDatos['codigo_tabla'   ] = Array('NombreVariable' => 'strCodigoTabla'  , 'TipoVariable' => 'S');
    $arrMapaDatos['orden'          ] = Array('NombreVariable' => 'intOrden'        , 'TipoVariable' => 'N');
    
    $this->__ArmarDatosPrivados('cat_bancos', $arrMapaDatos, 'id_banco');
    $this->SeleccionarPorIndice($intIdBanco);
  }
}

class FiltroBanco extends Filtro {
  function FiltroBanco() {
    $arrProceso['nombre'         ] = "Nombre"          ;
    $arrProceso['desc_corta'     ] = "Desc. corta"     ;
    $arrProceso['plaza'          ] = "Plaza"           ;
    $arrProceso['tipo_banco'     ] = "Tipo Banco"      ;
    $arrProceso['status'         ] = "Status"          ;
    $arrProceso['max_dias_cierre'] = "Max. Dias Cierre";
    $arrProceso['codigo_tabla'   ] = "Codigo Tabla"    ;
    $arrProceso['orden'          ] = "Orden"           ;
    
    parent::CrearFiltro("cat_bancos", "id_banco", $arrProceso, "Busqueda", "", "orden ASC", "Banco");
  }
}

class PluginABC_Banco extends PluginABC {
  function PluginABC_Banco() {
    $this->strNombreBoton   = "Obtener Bancos desde WEB Service";
    $this->bolLlevaDosPasos = false;
  }
  
  function EjecutarPlugin() {
    Variables::SmallTimeLap(true, "PluginEjec");
    $oCotizador = new CotizadorExtendido();
    $oCotizador->ObtenerCatalogoBancos();
    $arrRespuesta = $oCotizador->ObtenerArregloRespuesta();
    $oConecta = new Conecta();
    $oConecta->Consulta("TRUNCATE TABLE cat_bancos");
    
    $oBanco = new Banco();
    $oBanco->__strNombreIndice = "";
    $oBanco->__arrMapaTipos["id_banco"] = "N";
    
    $strRes  = "";
    foreach($arrRespuesta as $arrInfoBancos) {
      $oBanco->LimpiarObjeto();
      $oBanco->LlenarObjeto($arrInfoBancos);
      $oBanco->GuardarObjeto();
      
      $strRes .= "<tr class='ColumnasAlternas" . Variables::Alternar() . "'>";
      $strRes .= "<td>{$oBanco->strNombre}</td>";
      $strRes .= "</tr>";
    }
    $strRes .= "</table>";
    
    $strRes = "<tr><th>(Tiempo: " . sprintf("%0.4f", Variables::SmallTimeLap(false, "PluginEjec")) . " segundos)</th></tr>" . $strRes;
    $strRes = "<tr><th>Se cargaron " . count($arrRespuesta) . " datos:</th></tr>" . $strRes;
    $strRes = "<table class='TablaReportes'>" . $strRes;
    
    return $strRes;
  }
}

class ABC_Banco extends ABC_Base {
  function ABC_Banco() {
    $strClaseBase     = "Banco"      ;
    $strClaseFiltro   = "FiltroBanco";
    $strCampoMostrar  = "nombre"     ;
    $strOpcionListado = "abc_bancos" ;
    $strOpcionGuardar = "abc_bancos" ;
    $strClaseCarga    = ""           ;

    $arrNombresColumnas = array();
    $arrNombresColumnas['nombre'         ] = "Nombre"          ;
    $arrNombresColumnas['desc_corta'     ] = "Desc. corta"     ;
    $arrNombresColumnas['plaza'          ] = "Plaza"           ;
    $arrNombresColumnas['tipo_banco'     ] = "Tipo Banco"      ;
    $arrNombresColumnas['status'         ] = "Status"          ;
    $arrNombresColumnas['max_dias_cierre'] = "Max. Dias Cierre";
    $arrNombresColumnas['orden'          ] = "Orden"           ;
    $arrNombresColumnas['codigo_tabla'   ] = "Codigo Tabla"    ;

    $arrReferencias = array();
    
    $arrPlugIns               = array();
    $arrPlugIns["Globales"][] = "PluginABC_Banco";
    
    $this->Inicializar($strClaseBase, $arrNombresColumnas, $strOpcionListado, $strOpcionGuardar, $strCampoMostrar, $strClaseFiltro, $arrReferencias, "", $strClaseCarga);
    $this->arrPlugIns = $arrPlugIns;
    
    $this->bolABCLista             = true ;
    $this->bolABCListaOcultarTD    = true ;
    $this->bolPosibleNuevoElemento = false;
    $this->intTipoGuardado         = 1    ;
    $this->intNumeroRes            = 20   ;
    $this->bolSoloLectura          = true ;
    $this->bolOcultarTituloEnLista = true ;
    $this->bolABCListaMostrarInfo  = true ;
  }
}

?>